#ifndef CNC_BASE_MACHINE_OPERATION_H
#define CNC_BASE_MACHINE_OPERATION_H

#include <bcm/bcm.h>

namespace cnc {

	namespace base {

		enum AxisStatus {
			AS_HOME,
			AS_IDLE,
			AS_MOVING,
			AS_ERROR
		};

		struct MachineOperation : public bcm::Interface
		{
			virtual bool isHome(const int axis = -1) = 0;
			virtual AxisStatus getAxisStatus(const int axis) = 0;
			virtual void homeAxis(const int axis) = 0;
		};

	} // namespace base

} // namespace cnc

#endif

